--- title: Como usar o pacote sidraR author: '' date: '2022-01-21' slug: como-usar-o-pacote-sidrar categories: [] tags: [] subtitle: '' summary: '' authors: [] lastmod: '2022-01-19T11:21:04-03:00' featured: no image: caption: '' focal_point: '' preview_only: no projects: [] ---

O pacote sidraR permite acessar os dados do Sidra - Sistema IBGE de Recuperação Automática diretamente pelo R. No exemplo de hoje, vamos fazer um levantamento para tentar responder a seguinte pergunta: Quais foram os municípios brasileiros responsáveis pela maior parte do valor de soja produzido nas regiões Norte e Centro-Oeste em 2020?

Como o pacote está no CRAN, a instalação será pelo comando:

install.packages('sidrar')

A função abaixo permite que busquemos por determinadas palavras-chave nos títulos das tabelas do IBGE. Importante: não é permitido usar acentos nessa função.

x <- search_sidra('lavouras temporarias quantidade produzida')
x
##  [1] "Tabela 495 - Quantidade produzida por produtos das lavouras temporárias e condição do produtor em relação às terras"                                                                                                                                                                                                                         
##  [2] "Tabela 496 - Quantidade produzida por produtos das lavouras temporárias e grupo de atividade econômica"                                                                                                                                                                                                                                      
##  [3] "Tabela 497 - Quantidade produzida por produtos das lavouras temporárias e grupos de área total"                                                                                                                                                                                                                                              
##  [4] "Tabela 1272 - Produtos da lavoura temporária nos estabelecimentos agropecuários, segundo indicadores da agricultura familiar e não familiar - FAO"                                                                                                                                                                                           
##  [5] "Tabela 1612 - Área plantada, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias"                                                                                                                                                                                                              
##  [6] "Tabela 1731 - Quantidade produzida por produtos das lavouras temporárias - série histórica (1940/2006)"                                                                                                                                                                                                                                      
##  [7] "Tabela 5457 - Área plantada ou destinada à colheita, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias e permanentes"                                                                                                                                                                        
##  [8] "Tabela 6957 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária, condição do produtor em relação às terras e grupos de atividade econômica"                                                                          
##  [9] "Tabela 6958 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária, tipo de semente e grupos de área colhida"                                                                                                           
## [10] "Tabela 6959 - Produção, Valor da produção, Venda, Valor da venda e Área colhida da lavoura temporária nos estabelecimentos agropecuários, por tipologia, produtos da lavoura temporária e grupos de área total"                                                                                                                              
## [11] "Tabela 6965 - Número de estabelecimentos agropecuários com lavoura temporária, Área total dos estabelecimentos agropecuários com lavoura temporária, Quantidade produzida nas lavouras temporárias e Área colhida nas lavouras temporárias, por produtos da lavoura temporária, origem da orientação técnica recebida e grupos de área total"

Após uma breve leitura dos nomes das tabelas, percebemos que a informação que precisamos está na Tabela 1612: Área plantada, área colhida, quantidade produzida, rendimento médio e valor da produção das lavouras temporárias.

É por meio da função get_sidra() que conseguimos baixar os dados do IBGE para o R. Por meio dos atributos da função eu consigo determinar o nível de detalhe do dado baixado (microrregião, município, estado etc), filtrar apenas as informações de uma região, e até mesmo selecionar uma variável específica.

Como o objetivo aqui é baixar os dados com o valor da produção, eu seleciono a variável número 215 (valor da produção) por meio do atributo variable. O problema é que ao usar a função get_sidra para baixar os dados da tabela, somos surpreendidos com a mensagem: “Quantidade de valores solicitados X linhas excedeu o limite: 50000”. Ou seja, existe uma limitação de que os dados baixados sejam de apenas 50.000 por requisição. Para contornar essa limitação, a solução foi fazer uma requisição para cada região e ir armazenando os resultados em uma tabela que criativamente foi chamada de “tabela”.

regiao <- c(1,5)
tabela <- data.frame()

for(i in regiao){
  x <- get_sidra(x = 1612, # código da tabela no Sidra
                 geo = 'City', # nível de detalhe espacial da informação
                 geo.filter = list("Region" = i), #região
                 variable = 215, # variável de interesse
                 period = as.character(2020)
                 )
tabela <- rbind(tabela,x)
}

Podemos ver as primeiras linhas da nova tabela abaixo.

head(tabela)
##   Nível Territorial (Código) Nível Territorial Unidade de Medida (Código)
## 2                          6         Município                         40
## 3                          6         Município                         40
## 4                          6         Município                         40
## 5                          6         Município                         40
## 6                          6         Município                         40
## 7                          6         Município                         40
##   Unidade de Medida Valor Município (Código)                  Município
## 2         Mil Reais 40723            1100015 Alta Floresta D'Oeste - RO
## 3         Mil Reais   417            1100015 Alta Floresta D'Oeste - RO
## 4         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 5         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 6         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 7         Mil Reais    20            1100015 Alta Floresta D'Oeste - RO
##   Ano (Código)  Ano Variável (Código)          Variável
## 2         2020 2020               215 Valor da produção
## 3         2020 2020               215 Valor da produção
## 4         2020 2020               215 Valor da produção
## 5         2020 2020               215 Valor da produção
## 6         2020 2020               215 Valor da produção
## 7         2020 2020               215 Valor da produção
##   Produto das lavouras temporárias (Código) Produto das lavouras temporárias
## 2                                         0                            Total
## 3                                      2688                         Abacaxi*
## 4                                     40471                    Alfafa fenada
## 5                                      2689     Algodão herbáceo (em caroço)
## 6                                      2690                             Alho
## 7                                      2691              Amendoim (em casca)

Agora vamos filtrar a produção de soja, selecionar apenas aquelas variáveis que serão usadas, substituir os valores faltantes por zero, remover os municípios que tem valor igual a zero e classificar os valores.

tabela_class <- tabela %>%
  janitor::clean_names() %>%
  select(5,6,7,9,13) %>%
  replace(is.na(.), 0) %>% 
  dplyr::filter(produto_das_lavouras_temporarias %in% "Soja (em grão)",
                valor > 0) %>%
  arrange(desc(valor)) 

tabela_class <- tabela_class %>% 
  mutate(class = case_when(
         valor <= summary(tabela_class$valor)[2] ~ "Baixo",
         valor <= summary(tabela_class$valor)[3] ~ "Médio Baixo",
         valor <= summary(tabela_class$valor)[5] ~ "Médio Alto",
         valor > summary(tabela_class$valor)[5] ~ "Alto"
         ),
         class = factor(class,
                        levels = c("Baixo","Médio Baixo","Médio Alto","Alto"))
         )
tabela_class$municipio_codigo <- as.double(tabela_class$municipio_codigo)
head(tabela)
##   Nível Territorial (Código) Nível Territorial Unidade de Medida (Código)
## 2                          6         Município                         40
## 3                          6         Município                         40
## 4                          6         Município                         40
## 5                          6         Município                         40
## 6                          6         Município                         40
## 7                          6         Município                         40
##   Unidade de Medida Valor Município (Código)                  Município
## 2         Mil Reais 40723            1100015 Alta Floresta D'Oeste - RO
## 3         Mil Reais   417            1100015 Alta Floresta D'Oeste - RO
## 4         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 5         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 6         Mil Reais    NA            1100015 Alta Floresta D'Oeste - RO
## 7         Mil Reais    20            1100015 Alta Floresta D'Oeste - RO
##   Ano (Código)  Ano Variável (Código)          Variável
## 2         2020 2020               215 Valor da produção
## 3         2020 2020               215 Valor da produção
## 4         2020 2020               215 Valor da produção
## 5         2020 2020               215 Valor da produção
## 6         2020 2020               215 Valor da produção
## 7         2020 2020               215 Valor da produção
##   Produto das lavouras temporárias (Código) Produto das lavouras temporárias
## 2                                         0                            Total
## 3                                      2688                         Abacaxi*
## 4                                     40471                    Alfafa fenada
## 5                                      2689     Algodão herbáceo (em caroço)
## 6                                      2690                             Alho
## 7                                      2691              Amendoim (em casca)

O resultado pode ser visto no mapa abaixo:

library(mapview)
library(geobr)
library(RColorBrewer)
mapa_soja <- geobr::read_municipality(showProgress = F) %>% 
  filter(str_detect(code_state, "^1|^5")) %>% 
  left_join(tabela_class, by = c('code_muni' = 'municipio_codigo'))

mapview::mapview(mapa_soja, zcol = "class", label = 'name_muni', col.regions = brewer.pal(4, "YlOrRd"))